{{tag>programmation brouillon}}
----
====== GDL : GNU Data Language ======
<note>**GDL**, c'est l'équivalent libre sous **GNU/linux** d'**IDL**. J'ai au début suivi des tutoriels pour compiler à la main les paquets et dépendances avant de me rendre compte qu'on pouvait l'installer directement. Il faut juste savoir que **GDL**, ça veut dire **GNU Data Language**, et que par conséquent, rechercher **GDL** dans synaptics ne renvoie pas de résultats alors que le programme s'y trouve.</note>

===== Installation =====
Pour installer **GDL** depuis un paquet pré-compilé, il vous suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://gnudatalanguage|gnudatalanguage]]**.

À la deuxième fois que j'ai installé **GDL** sous **Ubuntu**, j'ai dû installer un deuxième paquet pour pouvoir afficher les courbes dans la fenêtre. Pour remédier au problème, j'ai installé **[[apt://plplot9-driver-xwin|plplot9-driver-xwin]]**

[[apt://gnudatalanguage,plplot9-driver-xwin|{{ :apt.png |Installer en 1 clic.}}]]

Vous pouvez aussi voir ici: 
[[http://packages.ubuntu.com/fr/hardy/interpreters/gnudatalanguage|les dépendances de GDL]]


===== Compilation =====

La version APT est basée sur la version 0.9pre6 de GDL. Depuis, une 0.9rc1 puis une 0.9rc2 sont sorties, contenant des améliorations notables par rapport à la 0.9pre6, et le CVS est toujours actif ... Très franchement, à partir du moment ou les librairies (plplot, readline, gsl, ...) sont installées, il faut un très petit effort pour compiler le code source ...

Lors de la compilation, la seule vraie //ruse// concerne plplot, car Debian n'a pas encore la version 5.9.0 de plplot ou le nombre de paramètres d'une fonction a changé ...

<code>
tar -zxf gdl-0.9rc1.tar.gz
cd gdl-0.9rc1
aclocal
autoconf
automake
./configure --enable-oldplplot
make
</code>

Ceci est évidemment transposable à la version 0.9rc2.

Je considère que //make install// est facultatif: il est tout a fait possible de compiler le projet puis de vivre en local.

Supposons que vous ayez la version 5.9.0 de plplot, compilée à la main, dans une arborescence locale, ainsi qu'une version ad-hoc de la GSL, il suffira de faire:

<code>
tar -zxf gdl-0.9rc1.tar.gz
cd gdl-0.9rc1
aclocal
autoconf
automake
./configure --without-hdf5 --with-Magick=no --without-netcdf --without-hdf \
  --with-plplot=/home/visiteur/GDL/plplot-5.9.0/Compilation/  \
  --with-gsl=/home/visiteur/GDL/gsl-1.11/Compilation/
</code>

J'en ai profité pour montrer comment désactiver certaines options: ceci fait gagner un temps notable à la compilation, surtout si on ne servira jamais de ces librairies !

Si, par hasard la partie graphique ne démarrait pas convenablement, il peut être utile d'ajouter 
<code>
export LD_LIBRARY_PATH=/home/visiteur/GDL/plplot-5.9.0/Compilation/lib/
</code>
(si qlq1 pouvait expliquer, et me dire comment corriger cela dans le code, j'en serais ravi !)
Attention, il ne faut pas confondre ce problème-ci avec le manque du package 
décrit dans la partie //installation//.


===== Configuration (proposition de nouvelle version) =====

Ensuite, il faut définir les variables d'environnements de GDL. Il y a deux variables GDL_PATH et GDL_STARTUP. Pour des raisons de compatibilité avec le langage IDL, si ces variables ne sont pas fournies, GDL va aussi considérer IDL_PATH et IDL_STARTUP. 

GDL_PATH indique les chemins vers les programmes (fichiers ASCII généralement de suffixe .pro). 
<code>
######### Variables d'environnements pour GDL ############
export GDL_PATH=~/Chemin/Relatif/lib1:+/Chemin/Absolu/routines2:.
</code>
Le petit "+" veut dire qu'on va considérer récursivement tous les sous-répertoires ...

Ces programmes peuvent former de vastes bibliothèques, telles [[http://idlastro.gsfc.nasa.gov/| Astron]] ou SolarSoft, ou de petits outils très connus [[http://cow.physics.wisc.edu/~craigm/idl/fitting.html|MPFIT]]. Ces programmes, écris en syntaxe IDL, sont plus ou moins bien gérés par GDL. Depuis les versions 0.9pre, la plupart des problèmes ont été réglés.

Bien évidemment, aussi bien GDL_PATH que GDL_STARTUP peuvent être stockées dans un fichier lu au démarrage, tel ''~/.bashrc'' sous ''bash''.

S'il est absent, le sous répertoire caché ''~/.gdl'' est automatiquement cree dans les dernières versions de GDL afin d'y stocker un historique des commandes (par défaut, 20 lignes) dans un fichier ASCII de nom ''history''.

===== Configuration (ancienne version) =====

 J'ai mis du temps à comprendre et trouver comment il fallait faire, ma méthode n'est en aucun cas la meilleure vu qu'apparemment je définis à chaque démarrage d'une console les variables au lieu qu'elles soient créées une bonne fois pour toute, mais ça a le mérite de marcher.

J'ai donc créé un répertoire ''.gdl'' (dossier caché donc, en raison du point, comme tout les dossiers de configuration) dans mon répertoire utilisateur. Dans ce répertoire, j'ai créé un fichier ''startup'' qui me sert à définir les commandes à exécuter au démarrage de GDL. Pour le moment, le fichier est vide, mais quand je saurais quoi mettre dedans, je pourrais le faire facilement (peut-être qu'il faut les droits d'exécutions au fichier).

J'ai créé dans le dossier ''.gdl'' deux sous dossiers, ''lib'' et ''routines'' dans lesquels je stocke les ''*.pro'' que j'ai récupéré ici et là et qui me permettent de compléter mon utilisation de GDL.

Maintenant, pour créer les variables d'environnements, j'ai rajouté les lignes suivantes à mon fichier ''~/.bashrc'' :
<code>
######### Variables d'environnements pour GDL ############
export GDL_PATH=~/.gdl/lib:~/.gdl/routines
export GDL_STARTUP=~/.gdl/startup
</code>


===== Voir aussi =====

  * **(en)** [[http://gnudatalanguage.sourceforge.net|Site officiel]] 
  * **(fr)** [[http://linuxfr.org/2005/10/19/19756.html| une dépêche]] sur [[http://linuxfr.org| LinuxFr.org]] à l'occasion de la version 0.8.11 de GDL
  * **(fr)** [[http://linuxfr.org/2007/07/10/22715.html| une autre dépêche]] sur [[http://linuxfr.org| LinuxFr.org]] à l'occasion de la version 0.9pre5 de GDL
  * **(fr)** [[http://aramis.obspm.fr/~coulais/IDL_et_GDL/memo_GDL0.8.11.html| comment réussir à installer GDL]] sous [[Linux]] ou Mac OS X
  * **(en)** [[http://www.sgeier.net/tools/GDL-intro.pdf| un tutoriel des commandes de base]]
  * **(fr)** [[http://aramis.obspm.fr/~coulais/IDL_et_GDL/Matrice_IDLvsGDL_intrinsic.html| une liste des fonctions intrinsèques]] d'IDL disponibles dans GDL. Attention, certains mots-clef peuvent, il peut rester des bugs ...
  * **(en)** [[http://packages.ubuntu.com/fr/hardy/interpreters/gnudatalanguage|les dépendances de GDL]]

----
//Contributeurs : [[utilisateurs:Autiwa|Autiwa]], [[utilisateurs:AlainGDL|AlainGDL]].//